import { observable, action, autorun,toJS } from 'mobx';
import {WeaTools,WeaLocaleProvider} from "ecCom"
import objectAssign from 'object-assign';
import {message,Modal} from 'antd';
const confirm = Modal.confirm;
import isEqual from 'lodash/isEqual';
import {WeaTableNew,WeaForm} from 'comsMobx'
const {TableStore} = WeaTableNew;
const {ls} = WeaTools;
const getLabel = WeaLocaleProvider.getLabel;
import * as  Apis from '../../apis/project';
import * as  BoardApis from '../../apis/projecboard';
import * as Common_Apis from '../../apis/index';
import * as Task_Apis from "../../apis/task";
import {AddProjectStore} from "../addProjectStore";
import {ProjectInfoStore} from '../projectInfoStore';
import {ShareStore} from '../shareStore'
import {TaskInfoStore} from '../task/taskInfoStore'
import {ExchangeStore } from "../exchangeStore"
import { RelateListStore } from '../taskListStore';
// import {cptAddFormRules} from "../../util/index"

export class PrjCardStore {
	@observable	tabDatas = [];

    @observable selectTabKey = "1"
	
    @observable loading = false;
	@observable prjid ="";
	@observable prjname ="";
	@observable targetid ="";
	discusstype = "PP";
    taskname="";

    @observable showSearchAd = false  // 高级搜索显示
	@observable rightMenu = [];
	
	@observable form = new WeaForm(); //项目信息

	@observable templatename = "";//模板名称
	@observable doSaveVisible = false;

	@observable fieldInfo = [];
	@observable prjinfoRight = {
		hasRight:false,
		verified:false
	};
	@observable prjisdel = false;
	validateRules = {};  //校验规则

	@observable prjSubStore = new TableStore();  //子项目
	@observable prjSubform = new WeaForm();
	@observable prjsubRight ={
		hasRight:false,
		verified:false
	}
	@observable condition = []; //高级搜索

	@observable addProjectStore = new AddProjectStore();

	@observable exchangeList = "";
	@observable _BrowserList = {
		'create': {remark: ''},
		datas: [],
	};
	
	@observable shareTableStore =  new TableStore(); //共享
	@observable shareStore = new ShareStore();
	@observable isShowShare = false;
	@observable shareRight={
		hasRight:false,
		verified:false
	}
	
	@observable projectInfoStore = new ProjectInfoStore();

	@observable stastics = [];  //统计报告
	@observable statkey = 0;  //统计报告
	@observable taskListTableStore = new TableStore({dataHandle: (datas) => {  //任务列表
		datas.forEach((data) => {
		  if (typeof(data.subListspan) == 'string') {
			data.subListspan = data.subListspan ? JSON.parse(data.subListspan) : undefined;
		  }
		});
		return datas;
	  }});
	@observable taskListform = new WeaForm();
	@observable taskListquickform = new WeaForm();
	@observable taskListTabs = [];
	@observable taskListSearchParams = {
		version:"0"
	};
	@observable taskListQuickitems = [];
	@observable taskListRight={
		hasRight:false,
		verified:false
	}
	@observable relateListStore = new RelateListStore();
	@observable taskInfoStore = new TaskInfoStore();

	@observable exchangeStore = new ExchangeStore();

	@observable prjLogTableStore = new TableStore();  //日志

	@observable prjFieldLogTableStore = new TableStore();  //字段日志

	@observable prjFieldDetailLogTableStore = new TableStore();  //字段详情日志

	@observable fieldLogVisible = false;

	@observable fieldDetailLogVisible = false;

	@observable fieldname = '';

	@observable field = '';


	@observable verified = false;
	@observable hasRight = false; //权限
	@observable showEditTask = false;

	@observable isreload = false;

	@observable stageInfo = {
		stageColumns: [],
		stageColumnDatas: [],
		selectedRowKeys: [],
		selectedDatas: {},
		canedit:false
	}

	@observable approveplanstatus = false;

	@observable resourceInfo = {
		cptList : [],
		prjList : [],
		taskList : [],
		accList : [],
		wfList : [],
		cusList : [],
		docList : []
	}

	@observable isBatchEdit = 0;

	@observable isApprove = false;

	@observable status = '';

	@action
	setPrjId = (prjid) => {
		this.prjid = prjid;
	}
	
	@action 
	reLoad = (tableStore) => {
        tableStore.getDatas(tableStore.dataKey, tableStore.current,tableStore.pageSize,tableStore.sortParams)
	}
	
	@action
	refTaskList =(params={})=>{
		this.getPrjTaskCondition(params);
		this.getPrjTaskVersion(params);
		this.getPrjTaskList(params);
	}
    //设置选中按钮
	changeTab = (key) => {
		this.selectTabKey = key;
		this.rightMenu = [];
		const tabDatas = toJS(this.tabDatas);
		if (tabDatas) {
			for (let i = 0; i < tabDatas.length; i++) {
				if (tabDatas[i].id == key && tabDatas[i].shortname == "prjinfo") {   //基本信息
					this.getPrjInfo({ viewtype: 'view', prjid: this.prjid });
				} else if (tabDatas[i].id == key && tabDatas[i].shortname == "tasklist") {//任务列表
					this.getPrjTaskCondition();
					this.getPrjTaskVersion();
					this.getPrjTaskList();
				} else if (tabDatas[i].id == key && tabDatas[i].shortname == "childprj") { //子项目
					this.getPrjSubList();
					this.getPrjSubCondition();
				} else if (tabDatas[i].id == key && tabDatas[i].shortname == "prjdiscuss") {  //相关交流
					this.targetid = this.prjid;
					this.getExchangeList({});
				} else if (tabDatas[i].id == key && tabDatas[i].shortname == "prjshare") {  //共享设置
					this.getPrjShareList();
				} else if (tabDatas[i].id == key && tabDatas[i].shortname == "stareport") {  //统计报告
					this.getPrjStastics();
				} else if (tabDatas[i].id == key && tabDatas[i].shortname == "stageset") {  //项目阶段
					this.clearStageStatus();
					this.getPrjTempletStageList();
				} else if (tabDatas[i].id == key && tabDatas[i].shortname == "resources") {  //甘特图
					this.getPrjResourceInfo();
				} 
			}
		}
	}

    getPrjTabs=(params={})=>{
		this.prjid = params.prjid;
		this.prjisdel = false;
        Apis.getPrjTabs(params).then(data=>{
			if(!data.isright && typeof(data.isright) !== "undefined"){
				this.hasRight = data.isright;
				this.verified = true;
			}else{
				this.hasRight = true;
				this.verified = true;
				this.tabDatas = data.tabs ;
			}
        })
        
	}
	getPrjInfo=(params={})=>{
		this.loading = true;
		this.form = new WeaForm();
		Apis.getPrjInfo(params).then(data=>{
			if(!data.isright && typeof(data.isright) !== "undefined"){
				this.prjinfoRight = {
					hasRight:data.isright,
					verified:true
				};
			}else{
				this.prjinfoRight = {
					hasRight:true,
					verified:true
				};
				this.isApprove = data.isApprove;
				this.fieldInfo = data.fieldinfo;
				this.rightMenu = data.rightMenus;
				this.prjname = data.prjname;
				this.prjid = data.prjid;
				this.form && !this.form.isFormInit && this.form.initFormFields(data.fieldinfo);
			}
			this.loading = false;
		})

	}
	
	//项目看板卡片
	getPrjInfoForBoard=(params={})=>{
		this.loading = true;
		this.form = new WeaForm();
		BoardApis.getPrjInfoForBoard(params).then(data=>{
			if(!data.isright && typeof(data.isright) !== "undefined"){
				this.prjinfoRight = {
					hasRight:data.isright,
					verified:true
				};
			}else{
				this.prjinfoRight = {
					hasRight:true,
					verified:true
				};
				this.fieldInfo = data.fieldinfo;
				this.rightMenu = data.rightMenus;
				this.prjname = data.prjname;
				this.prjid = data.prjid;
				this.form && !this.form.isFormInit && this.form.initFormFields(data.fieldinfo);
			}
			this.loading = false;
		})
	}

	//项目看板卡片 -- 编辑保存
	savePrjInfoForBoard=(params={})=>{
		this.loading = true;
		this.form.validateForm().then(f=>{
            if(f.isValid){
				let newParams = {...toJS(this.form.getFormParams()),method:"edit",prjid:this.prjid,...params};
				Apis.savePrjInfo(newParams).then(data=>{
					if(data.success){
						this.getPrjInfoForBoard({viewtype:"edit",prjid:this.prjid});
					}else{
						// Modal.warning({
						// 	title: getLabel(15172,"系统提示"),
						// 	content: data.msg,
						// });
						message.error(data.msg);
					}
				})
            }else{
                f.showErrors();
            }
        });
	}

	//项目信息 -- 编辑保存
	savePrjInfo=(params={},boardStore)=>{
		this.form.validateForm().then(f=>{
            if(f.isValid){
				let newParams = {...toJS(this.form.getFormParams()),method:"edit",prjid:this.prjid,...params};
				Apis.savePrjInfo(newParams).then(data=>{
					if(data.success){
						this.getPrjInfo({viewtype:"view",prjid:this.prjid});
						boardStore.getProjectList();
					}else{
						// Modal.warning({
						// 	title: getLabel(15172,"系统提示"),
						// 	content: data.msg,
						// });
						message.error(data.msg);
					}
				})
            }else{
                f.showErrors();
            }
        });
	}

	//项目执行操作
    @action
    doPlanOpt=(params={},boardStore)=>{
        Apis.doPlanOpt(params).then(data=>{
			// this.getPrjInfo({viewtype:"view",prjid:this.prjid,...params});
			boardStore.getProjectList();
		});
	}

	//子项目执行操作
	@action
	doSubPlanOpt = (params = {}) => {
		Apis.doPlanOpt(params).then(data => {
			this.getPrjSubList();
		});
	}

	//任务列表执行操作
    @action
    doPlanOpt_task=(params={},boardStore)=>{
		this.approveplanstatus = true;
		Apis.doPlanOpt(params).then(data=>{
			if(data.success){
				this.getPrjTaskList(params);
				this.getPrjTaskCondition(params);
				this.getPrjTaskVersion(params);
				boardStore.getProjectList();
				Modal.success({
					title: getLabel(15172,"系统提示"),
					content: getLabel(16248,"提交成功"),
				});
			}else{
				Modal.error({
					title: getLabel(15172,"系统提示"),
					content: getLabel(15173,"提交失败"),
				});
			} 
            this.approveplanstatus = false;
		});
	}

	//项目任务保存为计划版本操作
    @action
    saveasplan=(params={})=>{
		let _this = this;
		Modal.confirm({
            title: getLabel(15172,"系统提示"),
            content: getLabel(83928,"您确认要存为计划版本吗？"),
            onOk() {
                Apis.doPlanOpt(params).then(data=>{
					_this.getPrjTaskList();
					_this.getPrjTaskCondition();
					_this.getPrjTaskVersion();
				});
            },
            onCancel() { },
		})
	}
	//导出
    @action
    doTaskExcelExp=(params={})=>{
		this.loading = true;
		let newParams = { ...toJS(this.taskListSearchParams), ...toJS(this.taskListform.getFormParams()), ...toJS(this.taskListquickform.getFormParams()), prjid: this.prjid, ...params };
        //获取表单的参数值
        WeaTools.callApi('/api/proj/pctask/doTaskExcelExp','GET',newParams).then(data => {
            window.location="/weaver/weaver.file.ExcelOut";
            this.loading = false;
       }).catch(err=>message.error(err))
	}
	
	setVisiable = (bool) => {
		this.doSaveVisible = bool;
		this.templatename=this.prjname;
	}
	
	saveTemplateName =(data)=> {
		this.templatename = data;
	}
	//项目卡片另存为模板
	@action
	doSaveTemplet = (params = {}) => {
		Apis.doSaveTemplet({
			prjname:this.templatename,
			prjid:this.prjid
			}).then(data => {
			if (data.success) {
				Modal.success({
					title: getLabel(15172, "系统提示"),
					content: getLabel(19468, "另存为模板") + getLabel(84565, "成功！"),
				});
			} else {
				Modal.error({
					title: getLabel(15172, "系统提示"),
					content: getLabel(19468, "另存为模板") + getLabel(84566, "失败！"),
				});
			}
			this.setVisiable(false);
		});
	}

	//项目删除
    @action
    delPrjInfo=(params={},boardStore)=>{
        let _this = this;
        Modal.confirm({
            title: getLabel(15172,"系统提示"),
            content: getLabel(383860,"您确认要删除项目吗？"),
            onOk() {
                Apis.delPrjInfo(params).then(data=>{
					_this.prjisdel=true;
					boardStore.getProjectList();
					if(typeof window.opener._table !== "undefined"){
						window.opener._table.reLoad();
						window.close();
					}
				});
            },
            onCancel() { },
        })
	}
	
	//项目信息-校验规则
	setValidate= (params={}) =>{
		this.validateRules = params;
	}

	//子项目列表
	getPrjSubList=(params={})=>{
		this.loading = true;
		const searchParamsAd = this.prjSubform.getFormParams();
		const newParams = { prjid:this.prjid, ...searchParamsAd, ...params };
	   Apis.getPrjSubList(newParams).then(data=>{
			if(!data.isright && typeof(data.isright) !== "undefined"){
				this.prjsubRight = {
					hasRight:data.isright,
					verified:true
				};
			}else{
				this.prjsubRight = {
					hasRight:true,
					verified:true
				};
				this.prjSubStore.getDatas(data.sessionkey,  1);
				this.rightMenu = data.rightMenus;
				this.loading = false;
			}
	   });
	}
	//子项目  高级搜索
	getPrjSubCondition=()=>{
		this.prjSubform = new WeaForm();
		Apis.getPrjCondition({conditiontype :"prjsub"}).then(data=>{
			this.condition = data.condition;

			this.prjSubform && !this.prjSubform.isFormInit && this.prjSubform.initFormFields(data.condition);
		})
	}
	
	//删除
	exchangeDelete = (value) => {
		let _this = this;
		Apis.exchangeDelete(value).then(data => {
			if(data.status){
				_this.getExchangeList()
			}else {
				message.error(data.error ? data.error : `${getLabel(384137,'操作失败！')}`);
			}
		})
	}

	//获取相关交流信息
	@action
	getExchangeList = (value) => {
		this.loading = true;
		let _this = this;
		const newParams = { types: "PP", sortid: this.prjid, ...value };
		Apis.getExchangeList(newParams).then(data => {
			let exchange = { ...data }
			exchange.datas.forEach((element, index) => {
				element.isEdit = false
			})
			exchange.datas.unshift({
				id: 'create',
				isEdit: true,
				remark: '',
				docids: [],
				projectids: [],
				relatedcus: [],
				relateddoc: [],
				relatedprj: [],
				relatedwf: [],
			})
			_this.exchangeList = exchange;
			_this._BrowserList = {
				'create': {remark: ''},
				datas: [],
			};
			_this.exchangeList.datas&&_this.exchangeList.datas.forEach((element, index) => {
				if (_this._BrowserList[element['id']] == undefined) {
					_this._BrowserList[element['id']] = {};
				}
				_this._BrowserList[element['id']].remark = element.remark;
				_this._BrowserList[element['id']].docids = element.docids;
				_this._BrowserList[element['id']].projectids = element.projectids;
				_this._BrowserList[element['id']].relatedcus = element.relatedcus;
				_this._BrowserList[element['id']].relateddoc = element.relateddoc;
				_this._BrowserList[element['id']].relatedprj = element.relatedprj;
				_this._BrowserList[element['id']].relatedwf = element.relatedwf;
			})
			_this._BrowserList.datas = _this.exchangeList.datas;
			this.loading = false;
		})
	}

	//相关交流datas循环
	changeDiscussList = (value = {}) => {
		this.exchangeList = value;
		this.exchangeList.datas&&this.exchangeList.datas.forEach((element, index) => {
			if (this._BrowserList[element['id']] == undefined) {
				this._BrowserList[element['id']] = {};
			}
			this._BrowserList[element['id']].remark = element.remark;
			this._BrowserList[element['id']].docids = element.docids;
			this._BrowserList[element['id']].projectids = element.projectids;
			this._BrowserList[element['id']].relatedcus = element.relatedcus;
			this._BrowserList[element['id']].relateddoc = element.relateddoc;
			this._BrowserList[element['id']].relatedprj = element.relatedprj;
			this._BrowserList[element['id']].relatedwf = element.relatedwf;
		})
		this._BrowserList.datas = this.exchangeList.datas;
	}

	//相关交流提交
	exchangeSave = (value) => {
		let _this = this;
		Apis.exchangeSave({...value,discusstype:'PP'}).then(data => {
			if(data.status){
				_this.getExchangeList({ });
			}else {
				message.error(data.error ? data.error : `${getLabel(384137,'操作失败！')}`);
			}
		})
	}

	//相关交流提交
	setBrowserList = (_BrowserList) => {
		this._BrowserList = _BrowserList;
	}

    //高级搜索设值
    setFormFields=(value)=>{
		if(this.selectTabKey == "1"){  //项目信息
            this.form.updateFields(value, false);    //true代表完全覆盖方式更新条件值
		}
        if(this.selectTabKey == "3"){  //子项目
            this.prjSubform.updateFields(value, false);    //true代表完全覆盖方式更新条件值
		}
		if(this.selectTabKey == "2"){  //任务列表
            this.taskListform.updateFields(value, false);    //true代表完全覆盖方式更新条件值
        }
	}
	
	appendFormFields =(value)=>{
		this.setFormFields(value);
	}
    //共享
    getPrjShareList=(params={})=>{
        //获取表单的参数值
        this.loading = true;
        const newParams = { prjid:this.prjid, ...params };
       	Apis.getPrjShare(newParams).then(data=>{
			if(!data.isright && typeof(data.isright) !== "undefined"){
				this.shareRight = {
					hasRight:data.isright,
					verified:true
				};
			}else{
				this.shareRight = {
					hasRight:true,
					verified:true
				};
				this.shareTableStore.getDatas(data.sessionkey,  1);
				this.rightMenu = data.rightMenus;
			}
			this.loading = false;
       });
	}
	showAddShareModal =(bool)=>{
		this.isShowShare = bool;
	}
	//统计报告
	getPrjStastics = (params={}) =>{
		this.loading = true;
		Apis.getPrjStastics({prjid:this.prjid,...params}).then(data=>{
			this.stastics = data;
			this.loading = false;
			this.statkey++;
		})
	}
	//任务列表
	getPrjTaskList = (params={}) =>{
		this.loading = true;
		let newParams = {...toJS(this.taskListSearchParams),...toJS(this.taskListform.getFormParams()),...toJS(this.taskListquickform.getFormParams()),prjid:this.prjid,...params};
		for(let item in newParams){
            if(newParams[item] == ""){
                delete newParams[item]
            }
		 }
		if(newParams.version == "0"){newParams.version = ""}
		newParams.isBatchEdit = this.isBatchEdit;
		Apis.getPrjTaskList(newParams).then(data=>{
			if(!data.isright && typeof(data.isright) !== "undefined"){
				this.taskListRight = {
					hasRight:data.isright,
					verified:true
				};
			}else{
				this.taskListRight = {
					hasRight:true,
					verified:true
				};
				this.status = data.status;
				this.taskListTableStore.getDatas(data.sessionkey,  1);
				this.rightMenu = data.rightMenus;
				this.taskListSearchParams = {...this.taskListSearchParams,...params}
				this.taskListSearchParams = params.version==""?{version:"0"}:{...this.taskListSearchParams,...params};		
			};
			this.loading = false;
		})
	}
	//任务列表-condition
	getPrjTaskCondition=()=>{
		this.taskListform = new WeaForm();
		this.taskListquickform = new WeaForm();
		this.condition = [];
		this.taskListQuickitems = [];
		this.taskListSearchParams = {version: this.taskListSearchParams.version};	
		Common_Apis.getTaskCondition({conditiontype :"prjtasklist",prjid:this.prjid}).then(data=>{
			this.condition = data.condition;
			this.taskListQuickitems = data.quickitmes;
			this.taskListform && !this.taskListform.isFormInit && this.taskListform.initFormFields(data.condition);
			this.taskListquickform && !this.taskListquickform.isFormInit && this.taskListquickform.initFormFields(data.quickitmes);
		})
	}
	getPrjTaskVersion=()=>{
		Apis.getPrjTaskVersion({prjid:this.prjid}).then(data=>{
			this.taskListTabs = data;
		})
	}
	showEditTaskModal=(bool)=>{
		this.showEditTask = bool;
	}

	//form 重置
    clearFormFields=()=>{
		if(this.selectTabKey == "2"){  //任务列表
            this.taskListform.reset();      //清除查询条件值
		}
        if(this.selectTabKey == "3"){
            this.prjSubform.reset();      //清除查询条件值
		}
	}

	clearStatus = () => {
		this.rightMenu = [];
	}
	
	//添加共享v
	addShare = (value)=>{
		Apis.addPrjShare({...value,method:'add',prjid:this.prjid,opttype:'prj'}).then(data=>{
			this.getPrjShareList();
		})
	}
	//批量删除
	delBatchShare = (value)=>{
		let _this = this;
        Modal.confirm({
            title: getLabel(15172,"系统提示"),
            content: getLabel(83601,"您确认要删除选中的记录吗？"),
            onOk() {
                Apis.delBatchPjrShare({id:value,method:'batchdelete',opttype:'prj',prjid: _this.prjid}).then(data=>{
					_this.getPrjShareList();
				});
            },
            onCancel() { },
		})
	}
    //高级搜索显隐
    setShowSearchAd=(bool)=>{
        this.showSearchAd = bool
    }
	onShowColumn=()=>{   //显示定制列
        if(this.selectTabKey == "3"){
            this.prjSubStore.setColSetVisible(true);
            this.prjSubStore.tableColSet(true)
        }
	}
	getPrjLogList=(params={})=>{
		Apis.getPrjLogList(params).then(data=>{
			this.prjLogTableStore.getDatas(data.sessionkey,  1);
		})
	}

	getPrjFieldLogList = (params = {}) => {
		Apis.getPrjFieldLogList(params).then(data => {
			this.prjFieldLogTableStore.getDatas(data.sessionkey, 1);
		})
	}

	getPrjFieldDetaiLogList = (params = {}) => {
		Apis.getPrjFieldDetaiLogList(params).then(data => {
			this.prjFieldDetailLogTableStore.getDatas(data.sessionkey, 1);
		})
	}

	@action
	setFieldLogVisible = (v) =>{
		this.fieldLogVisible = v;
	}

	@action
	setFieldDetailLogVisible = (v) =>{
		this.fieldDetailLogVisible = v;
	}

	@action
	setFieldName = (v) =>{
		this.fieldname = v;
	}

	@action
	setField = (v) =>{
		this.field = v;
	}

	@action
	setLoaded=()=>{
		this.isreload= true;
	}

	
	getPrjTempletStageList = (params = {}) => {
		this.loading = true;
		let newParams = { prjid: this.prjid, ...params };
		Apis.getPrjTempletStageList(newParams).then(data => {
			this.stageInfo.stageColumns = data.columns;
			this.stageInfo.stageColumnDatas = data.columnDatas;
			this.stageInfo.canedit = data.canedit;
			this.rightMenu = data.rightMenus;
			this.loading = false;
		})
	}

	onRowSelect = (sRowKeys, rows, dataIndex, selectedDatas) => {
		this.stageInfo.selectedRowKeys = sRowKeys;
		if (selectedDatas) {
			this.stageInfo.selectedDatas = selectedDatas;
		}
	}

	onChange = (datas) => {
		this.stageInfo.stageColumnDatas = datas;
	}

	saveStageSet = (checkProps,prjid) => {
		const { pass } = checkProps;
		if (pass&&this.checkRepeat()) {
			let keepgroupids = "";
			this.stageInfo.stageColumnDatas.forEach(element => {
				if (element.id) {
					keepgroupids += "," + element.id
				}
			});
			keepgroupids = keepgroupids.substr(1, keepgroupids.length);
			Apis.savePrjTempletStage({ datas: JSON.stringify(this.stageInfo.stageColumnDatas), keepgroupids: keepgroupids, prjid: prjid }).then(data => {
				if (data.success) {
					this.clearStageStatus();
					message.success(data.msg);
					this.getPrjTempletStageList({prjid: prjid});
				} else {
					message.error(data.msg);
				}
			})
		}
	}

	checkRepeat = () => {
		let repeat = true;
		let datas = toJS(this.stageInfo.stageColumnDatas);
		datas && datas.length>0 && datas.map((d1,i1) => {
			if(repeat){
				datas && datas.length>0 && datas.map((d2,i2) => {
					if(i1 !== i2 && d1.name == d2.name){
						message.warning(getLabel('387703',"阶段名称重复！"));
						repeat =  false;
					}
				})
			}
			
		})
		return repeat;
	}

	clearStageStatus = () => {
		let _canedit = this.stageInfo.canedit;
		this.stageInfo = {
			stageColumns: [],
			stageColumnDatas: [],
			selectedRowKeys: [],
			selectedDatas: {},
			canedit:_canedit
		}
	}

	getPrjResourceInfo = (params) => {
		this.loading = true;
		let newParams = { prjid: this.prjid, ...params };
		Apis.getPrjResources(newParams).then(data => {
			if(data.success){
				this.resourceInfo = {
					...data
				}
			}
			this.loading = false;
		})
	}

	setIsBatchEdit = (v) =>{
		this.isBatchEdit = v;
	}

	resetTaskInfoStore = () =>{
		this.taskInfoStore = new TaskInfoStore();
	}

	triggerBreakDownWF = (params = {}) =>{
		const newParams = { prjid: this.prjid,...params}
		WeaTools.callApi('/api/proj/pctask/triggerBreakDownWF', 'POST', newParams).then(data => {
			if(data.msg=='success'){
				this.getPrjTaskList();
				this.getPrjTaskCondition();
				this.getPrjTaskVersion();
				message.success(getLabel('513071',"触发流程成功！"));
			}else{
				message.error(getLabel('513072',"触发流程失败！"));
			}
		});
	}

	@action
    delTaskBatch=(type)=>{
		let _this = this;
        if(this.taskInfoStore.selectedRowKeys.length > 0){
            Modal.confirm({
                title: getLabel(15172,"系统提示"),
                content: getLabel(83925,"该任务及其子任务都会被删除，您确认要删除吗？"),
                onOk() {
                    Task_Apis.delTask({method:type,taskids:`${_this.taskInfoStore.selectedRowKeys}`}).then(data=>{
                        if(data.success){
                            _this.taskInfoStore.selectedRowKeys = [];
                            window._table.reLoad();
                            Modal.success({
                                title: getLabel(15172,"系统提示"),
                                content: getLabel(83472,"删除成功！"),
							});
							_this.getPrjTaskList();
							_this.getPrjTaskCondition();
							_this.getPrjTaskVersion();
                        }else{
                            message.error(getLabel(383746,"请求失败")+"："+data.msgcode);
                        }
                       
                    })
                },
                onCancel() { },
            })
        }
    }

}

